#ifndef CORE_H
#define CORE_H
#include <json/json.h>
#include <memory>

#pragma warning( disable: 4251 )
#pragma warning( disable: 4005 )
#pragma warning( disable: 4275 )

#ifdef WIN32
#define DLL_EXPORT __declspec( dllexport )
#else // ifdef WIN32
#define DLL_EXPORT
#endif

#define StaticRegDummy( name ) \
  struct name ## Dummy { \
    name ## Dummy( ); \
  }; \
  static name ## Dummy name ## dummy;

#define CreateRegDummy( name ) \
  name ## Dummy::name ## Dummy( ) {}

//typedef std::shared_ptr<Json::Value> JsonPTR;

namespace StompedReality
{

typedef std::shared_ptr<Json::Value> JsonPTR;


static unsigned hash ( const char* s )
{
  unsigned int h = 137;
  while ( *s )
    h = h * 101 + ( unsigned int ) *s++;
  return h;
}

}

#endif //DLLEXPORT